This invention generally relates to database table designs and to a method of searching a database table for a given record; and more particularly, the invention relates to a database table design and to a method of searching a database table that are especially well-suited to complement solution searching on a knowledge system involving large numbers of variables.
Knowledge systems are computer systems that emulate human reasoning by interpreting encoded knowledge of human experts stored in a database referred to as a knowledge base. If the domain of the knowledge base, or the scope of the problem, is sufficiently narrow and an adequately large body of knowledge is properly coded in the knowledge base, then the knowledge system can achieve performance matching or exceeding the ability of a human expert. In such a case, the knowledge system is referred to as an expert system. Expert systems may be designed, at least in theory, for virtually any application ranging from medical diagnosis, automobile repair consultation, inventory control, and many other uses.
One difficulty with expert systems is that, for many specific queries, they are more expensive and slower than necessary. To elaborate, an expert system may be invoked to answer a request involving a large number of variables, and the expert system may process those variables through a relatively complicated program to answer the request. For many requests, especially those that are unique or complicated, this processing may be needed to answer the requests reliably. However, many requests are relatively standard or conventional, and invoking the complicated, time consuming processing of the expert system is a relatively slow and expensive way to answer these requests.
For instance, a customer may purchase an IBM 9370 computer system with many variable or optional features such as different memory sizes, different numbers of tape drives, and different direct access storage devices. In fact, it has been estimated that over two billion different combinations of features are available with the 9370 Information System. This very large number of different configurations of the 9370 Information System precludes developing a data base that contains all valid configurations--that is, all configurations that can be built without violating any of certain rules or limitations set by the manufacturer.
To solve this problem, an expert system was developed to configure a complete system based on a customer's requested machine configuration. The resultant expert system configurator adds features that are implied by the features that the customer actually specified as part of the requested machine configuration. For example, the expert system configurator adds enough DASD/Tape Controller Cards to control the number of DASD devices and Tape devices specified by the customer. The configurator also adds enough racks to physically contain the processor, the DASD devices, and the tape devices. To perform its function, the configurator actually determines where to place each card in a card cage and determines where to place each box in a rack. This is necessary in order to determine how many card cages are necessary and how many racks are necessary. The configurator also checks the resultant fully configured system against upper limits, to be sure that the system can be manufactured.
Various 9370 systems have become somewhat standard or common, though, and considerable time and expense could be saved if the expert system were supplemented to avoid invoking that expert system to process a request for one of those standard or conventional systems.
One way to do this is to provide the expert system with a conventional complementary database having a table that stores a plurality of records of available systems, and to preprocess a request from a user by searching the complementary database for a record identical to the record of the request. If an identical record is found in the complementary database table, this indicates that the requested configuration is valid; however, if no identical record is found in the complementary database, the expert system is invoked to answer the request.
Conventionally, database tables consist of a series of rows and columns. Each row has a fixed length and holds the data items for a respective one record, and each column of the database is dedicated to holding values for a respective one parameter of a family of parameters. The number of columns in tables that can be defined by conventional database management systems is limited, however, and such database tables are not capable of accommodating the request records of some expert systems involving a large family of parameters.